package com.sms.client;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.sms.client.dataassembler.DataClass;

@RemoteServiceRelativePath("HibernateService")
public interface _HibernateService extends RemoteService {

	public java.io.Serializable saveObject(java.io.Serializable obj);

	public java.io.Serializable saveObject(java.io.Serializable obj, Boolean endorsement);

	public List saveObjects(List objs);

	public void updateObject(String dataObjectId, Long savedPKID, String[] propertiesExpression, String[] propertiesValues);
	
	public Integer updateObject(String dataObjectId, Map<String, Object> dataValues, String whereClause);

	public void deleteObject(java.io.Serializable obj);

	public void deleteObjects(List objs);

	public java.io.Serializable findObjectByID(String dataObjectID, String id);

	public java.io.Serializable findObjectByID(String dataObjectID, Number id);

	public Long findValue(String functionName, String dataObjectId, String columnName, String filterString);

	public List findObjects(String dataObjectId, String filterStr);

	public List findObjects(String dataObjectId, String filterStr, String orderBy);

	public List findObjects(String dataObjectId, String filterStr, String[] filterAndOrderExtraColumnExps);

	public List findObjects(String dataObjectId, String filterStr, String orderBy, String[] filterAndOrderExtraColumnExps);

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr);

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, String orderBy);
	

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, String[] filterAndOrderExtraColumnExps);

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, String orderBy, String[] filterAndOrderExtraColumnExps);

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, boolean useNativeSQL);

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, String orderBy, boolean useNativeSQL);

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, String[] filterAndOrderExtraColumnExps, boolean useNativeSQL);

	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, String orderBy, String[] filterAndOrderExtraColumnExps, boolean useNativeSQL);

	public List findObjectsOnObjectBasis(String dataObjectId, String[] columnExpressions, String filterStr, String[] filterAndOrderExtraColumnExps);

	public List findObjectsOnObjectBasis(String dataObjectId, String filterStr, String[] filterAndOrderExtraColumnExps);

	public DataClass populateDataClass(String dataObjectId, String[] columnExpressions);


	public String[] getFilterColumnParameters(String dataObjectId, String[] columnExpressions);

	public String[] getFilterColumnParameters(String dataObjectId, String[] columnExpressions, boolean leftJoin);

	
	public List getTableValues(List modelList, List tableNameList, String stripeOrgID);

	public List findObjectsOnObjectBasis(String dataObjectId, String[] columnExpressions, String filterStr, String orderBY, String[] filterAndOrderExtraColumnExps);

	public List getSearchResult(String strQuery);
	
	public void updateGrievanceCategorySetup(String updateQuery);
	
	public Date getServerDate();
	
	public List findObjects(String dataObjectId, String[] columnExpressions, String filterStr, String orderBy,boolean useNativeSQL,boolean allRecords);
}